package map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * Map的遍历
 * 三种遍历方式:
 * 1:
 *
 */
public class MapDemo2 {
    public static void main(String[] args) {
        Map<String,Integer> map=new HashMap<>();
        map.put("语文",99);
        map.put("数学",93);
        map.put("英语",49);
        map.put("物理",96);
        map.put("化学",89);

        Set<String> ketSet=map.keySet();
        for (String key:ketSet){
            System.out.println(key);
        }

        /*
            遍历每一组键值对
            set<Map.Entry> entrySet()
         */
        Set<Map.Entry<String,Integer>> entrySet=map.entrySet();
        for (Map.Entry<String,Integer> e: entrySet){
            String key=e.getKey();
            Integer value=e.getValue();
            System.out.println(key+":"+value);
        }

        /*
            遍历所有value
            Collection valuser()
            将当前Map中所有的value以一个集合形式返回
         */
        Collection<Integer> values=map.values();
        for (Integer value:values){
            System.out.println("value:"+value);
        }

        /*
            JDK8之后,Map也提供了forEach方法,可以基于lambda表达式遍历键值对
         */
        map.forEach((k,v)-> System.out.println(k+":"+v));
    }
}
